(レポート) CMP319 – NEW LAUNCH! Building Distributed Applications with AWS Step Functions #reinvent
こんにちは、菊池です。
re:Inventで発表された新サービス、AWS Step Functionsについて早速セッションに参加しましたのでレポートします。
レポート
このセッションで話すこと
- AWS Step Functionsとは何か
- どのように動くか
- なぜこれを使うのか
- 何ができるのか
AWS Step Functionとは
- 視覚的なワークフローによって、分散アプリケーションにおけるコンポーネントのコーディネートを容易にする。
- マイクローサービス/ファンクションのステップ
- ファイルフォーマット変換
- 画像の並列処理
- Step Functionsのユースケース
- サービスのシーケンスが欲しい
- タスクを並列に実行したい
- 手前の処置の結果によって処理を分岐させたい
- 失敗時にリトライさせたい
- 長時間実行するコードがある
- Step Functionsの利点
- Productivity:分散されたマイクロサービス/ファンクションを容易に接続できる
- Agility:分析・デバッグが高速に可能で変化に適応できる
- Resilience:可用性の確保と失敗時のオペレーションを管理する
どのように動くか
- Step FUnctionsのライフサイクル
- JSONで定義
- コンソールで可視化
- 実行状況をモニタリング
- 7つのステップがある
- Task :Workの単一ユニット
- Choice:分岐条件の追加
- Parallel:Taskをまたいだデータの分岐/合流
- Wait:待ち
- Fail:実行の停止と失敗マーク
- Succeed:正常終了
- Pass:インプットからアウトプットまでのパス
- Task State :PullとPushがある
- Task Stateの設定方法
- Dispatch Work
- Retry Failures
- Catch Failures
- Choice Stateの設定方法
- Branching Logic
- Parallel Stateの設定方法
- Fork and Join Processes
- Wait Stateの設定方法
- Time Delay
- コンソールに6つのBlue Print
- APIの利用
- Create
- StartExecution
- StopExecution
- List
- Describe
何ができるか
- Step Functionsの利点
- Productivity:分散されたマイクロサービス/ファンクションを容易に接続できる
- Agility:分析・デバッグが高速に可能で変化に適応できる
- Resilience:可用性の確保と失敗時のオペレーションを管理する
- 利用料
- 2.5セント/1000 State Transitions
- 4000 State Transitions/月の無料枠あり
- 使えるリージョン
- バージニア
- オハイオ
- オレゴン
- ダブリン
- 東京
- 公式ページ
最後に
スライドでは、フロー図とともにJSONの記述例を表示しており、利用するイメージをつかむことができました。Lambdaだけでは難しかった、複数ファンクションの連携やエラー処理をしっかりと作り込むことができます。
すでに公開されて利用可能なサービスなので、公式ドキュメント/公開されるであろうスライドを参考に試していきたいと思います。